package Posicao;

public class PosicaoCollection {
	private Posicao[] posicoes;
	private int tamanho = 0;
	
	public PosicaoCollection(int tamanho) {
		this.setTamanho(tamanho);
		this.setPosicaoCollection(new Posicao[this.getTamanho()]);
		this.inicializaValores();
	}

	public void setTamanho(int tamanho) {
		this.tamanho = tamanho;
	}
	
	public int getTamanho() {
		return this.tamanho;
	}

	private void setPosicaoCollection(Posicao[] colecao) {
		this.posicoes = colecao;
	}
	
	public Posicao[] getPosicoesBombas() {
		return this.posicoes;
	}
	
	private void inicializaValores() {
		for (int i = 0; i < this.getTamanho(); i++) {
			this.posicoes[i] = new Posicao(-1, -1);
		}
	}
	
	public void setPosicao(int posicao, Posicao novaPosicao) {
		if(posicao > this.getTamanho() || posicao < 0) throw new Error("Acesso a posicao invalida da colecao");
		this.posicoes[posicao] = novaPosicao;
	}
	
	public Posicao getPosicao(int posicao) {
		return this.posicoes[posicao];
	}

	public boolean contemPosicao(Posicao posicao) {
		for (int i = 0; i < this.getTamanho(); i++) {
			if(this.getPosicao(i).equals(posicao)) return true;
		}
		return false;
	}
	
	public boolean preenchido() {
		for (int i = 0; i < this.getTamanho(); i++) {
			if(this.getPosicao(i).getX() == -1 || this.getPosicao(i).getY() == -1) return false;
		}
		return true;
	}
}
